package user_private_key

import (
	"github.com/xinliangnote/go-gin-api/internal/pkg/core"
	"github.com/xinliangnote/go-gin-api/internal/repository/mongodb"
	"github.com/xinliangnote/go-gin-api/internal/repository/redis"
	"github.com/xinliangnote/go-gin-api/internal/services/user_private_key"
	"go.uber.org/zap"
)

var _ Handler = (*handler)(nil)

type Handler interface {
	i()
	Create() core.HandlerFunc
	List() core.HandlerFunc
	Update() core.HandlerFunc
	Delete() core.HandlerFunc
	Change() core.HandlerFunc
	UpdateAddress() core.HandlerFunc
}

type handler struct {
	logger     *zap.Logger
	keyService user_private_key.Service
	cache      redis.Repo
	db         mongodb.Repo
}

func New(logger *zap.Logger, db mongodb.Repo, cache redis.Repo) Handler {
	return &handler{
		logger:     logger,
		keyService: user_private_key.New(db),
		cache:      cache,
	}
}

func (h *handler) i() {}
